In many games, unit(s) or character(s) move around in a virtual world and perform action(s) with respect to other game objects. Many complex games are played in multiple game instances over multiple game sessions. A game instance is a portion of the game that has a beginning and an end, often has separate map(s) or virtual world(s), and often has winner(s) and loser(s).
Some games, such as Starcraft® or Warcraft®, are real-time strategy games where human participants compete simultaneously in individual game instances with goals of winning the game instances against other human participants or computer participants. Competing participants may be similarly situated or handicapped at a beginning of each game instance. Often, starting conditions such as handicaps, maps, and teams are configurable by the user. In Starcraft® and Warcraft®, some units can construct buildings that may be used to produce units, and the units can attack or perform some other useful ability. Participants of real-time strategy games are generally not limited as to how quickly they can take actions towards winning a game instance—multiple participants simultaneously provide rapid input to take actions towards winning the game instance. In fact, participants that build and direct their units faster, and react to their opponent's units faster, are often more successful. For example, one participant may build ten units in a minute, and another participant may only build one unit in the same minute. In another example, one participant may perform ten actions before the other participant performs any actions. After playing many game instances, participants of real-time strategy games develop skills that allow them to win more game instances in the future. Participants may be ranked based on their past performance over multiple game instances, and this ranking information may be viewed during the game session.
Other games, such as World of Warcraft® and Diablo®, are roleplaying games (RPGs) where human participants build up virtual characters over multiple game sessions by completing quests and defeating monsters and dungeons. Dungeons may be treated as separate game instances with separate goals that users may complete before leaving the dungeons. World of Warcraft® is an example of a massively multiplayer online RPGs (MMORPGs) where a participant's character(s) may team up with, fight, or otherwise interact in a virtual world with multiple other participants' characters simultaneously. In World of Warcraft® and Diablo®, characters may level up and gain abilities as they defeat monsters and complete missions. MMORPGs often offload processing from participant devices to central servers to reduce the amount of network communications and graphics computations required by the participant devices for each additional character that is added to the environment. Diablo® is an example of an action RPG where a participant's character(s) may team up with or otherwise interact in a virtual world with other participants' characters simultaneously. Action RPGs often localize processing on participant devices to maximize the quality of graphics and speed of the game.
Many other games, such as chess and checkers, are turn-based games where participants proceed one after another in an ordered sequence. Unlike real-time strategy games, the time that elapses between turns in these games generally has no effect on the game other than possibly frustrating the participants. Also in these games, participants generally cannot take multiple turns in a row or take actions simultaneously with other participants. Turn-based games are generally significantly less complex than real-time strategy games, and, as a result, a previously-played instance of a turn-based game can be summarized merely by listing the action that occurred each turn.
There are many other types of games that have not been mentioned, and many of these games apply concepts that are similar to those in the above-mentioned games. Due to the highly competitive nature of complex games, people often try to devote 100% of their attention to the games while playing. Sometimes participants need to save the state of a game instance before the game instance has been completed. Many games save a current state of a game instance in response to a participant's explicit request, during the game instance, to save the current state. For example, the current state of most Nintendo® game instances can be saved via an interface that appears after the start button is pressed.
Some games even save states of game instances periodically for participants without requiring the participants to make explicit requests. Most games are complex enough that it would be impractical or even impossible to save every possible state of the game as the game progresses. For example, a game instance may have eight players controlling an average of a hundred units each for sixty minutes. If states of units, such as unit positions and unit health, were saved every millisecond, 2.88 billion unit states would need to be stored to represent the entire game instance. If each unit state consumed 1 KB of disk space, storing 2.88 billion unit states would consume about 2.68 TB, which goes well beyond the storage capabilities of most personal computers. Other information may also be included within the state of the game, such as research progress, building or structure positions and health, and progress for incomplete buildings or units.
Even if saving this many unit states along with the other information were possible, the computing resources (e.g., memory, disk bandwidth, and processor time) that would be consumed to accomplish this feat would severely degrade gameplay. Due to additional resources that are consumed to save state, most games experience a lag or a temporary decrease in performance when state is saved, and, perhaps for this reason, autosave features generally trigger after minutes rather than after milliseconds since the last save point. When saving states of game instances, most games overwrite previously saved game states to preserve space on disk. In other words, most games maintain only one latest saved state on disk.
If a participant has not explicitly saved a game instance at a desired time, then the participant may need to revert to the state of the game instance at an undesirable time such as a point in time that a last autosave was completed or a point in time that the game instance was last explicitly saved. This problem is compounded by the fact that many game instances are interrupted by factors that are unpredictable and outside of the participant's control, such as hardware failure or degradation, network outages, low battery levels, power outages, telephone calls, emails, text messages, instant messages, families, friends, pets, changes in lighting or noise level in the environment, competition for resources by other software such as scheduled updates or system scans, competition for network resources by other users on other machines, or other factors that require relocation or cause delay or postponement of the game.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.